package cn.xhc.question.service.impl;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

import cn.xhc.common.util.JsonUtil;
import cn.xhc.common.util.PageInfoUtil;
import cn.xhc.question.dao.IAAnswerDao;
import cn.xhc.question.dao.IAColumnDao;
import cn.xhc.question.dao.IAItemDao;
import cn.xhc.question.dao.IAQuestionDao;
import cn.xhc.question.pojo.AAnswer;
import cn.xhc.question.pojo.AColumn;
import cn.xhc.question.pojo.AItem;
import cn.xhc.question.pojo.AQuestion;
import cn.xhc.question.service.IQuestionService;
@Service("questionService")
public class QuestionServiceImpl implements IQuestionService{
	@Resource
	private IAColumnDao columnDao;
	@Resource
	private IAItemDao itemDao;
	@Resource
	private IAQuestionDao questionDao;
	@Resource
	private IAAnswerDao answerDao;
	/*栏目模块开始*/
	/**
	 * 查询一条栏目
	 */
	@Override
	public AColumn findOneColumnService(Map<String, Object> condMap) {
		return columnDao.findOne(condMap);
	}
	/**
	 * 保存一条栏目
	 */
	@Override
	public JSONObject saveOneColumnService(AColumn column) {
		int result = this.columnDao.saveOne(column);
		return JsonUtil.JsonHandler(result,column.getId());
	}
	/**
	 * 更新一个栏目
	 */
	@Override
	public JSONObject updateOneColumnService(AColumn column) {
		int result = this.columnDao.updateOne(column);
		return JsonUtil.JsonHandler(result,column.getId());
	}
	/**
	 * 删除一个栏目
	 */
	@Override
	public JSONObject deleteOneColumnService(AColumn column) {
		int result = this.columnDao.deleteOne(column);
		return JsonUtil.JsonHandler(result, column.getId());
	}
	/**
	 * 查询所有栏目信息
	 */
	@Override
	public List<AColumn> findCondListColumnService(Map<String, Object> condMap) {
		return this.columnDao.findCondList(condMap);
	}
	
	/*栏目模块结束*/
	
	/*栏目项目模块开始*/
	/**
	 * 查询一条栏目项目
	 */
	@Override
	public AItem findOneItemService(Map<String, Object> condMap) {
		return itemDao.findOne(condMap);
	}
	/**
	 * 保存一条栏目项目
	 */
	@Override
	public JSONObject saveOneItemService(AItem item) {
		int result = this.itemDao.saveOne(item);
		return JsonUtil.JsonHandler(result,item.getId());
	}
	/**
	 * 更新一个栏目项目
	 */
	@Override
	public JSONObject updateOneItemService(AItem item) {
		int result = this.itemDao.updateOne(item);
		return JsonUtil.JsonHandler(result,item.getId());
	}
	/**
	 * 删除一个栏目项目
	 */
	@Override
	public JSONObject deleteOneItemService(AItem item) {
		int result = this.itemDao.deleteOne(item);
		return JsonUtil.JsonHandler(result, item.getId());
	}
	/**
	 * 查询所有栏目项目信息
	 */
	@Override
	public List<AItem> findCondListItemService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap) {
		if (pageInfoUtil != null)
		{
			/* 分页 */
			/* 查询总记录数 */
			Page<AItem> page = PageHelper.startPage(pageInfoUtil.getCurrentPage(), pageInfoUtil.getPageSize());
			/* 查询数据 */
			List<AItem> columnsList = this.itemDao.findCondList(condMap);
			/* 设置总记录数 ,一定要在查询结果之后 */
			pageInfoUtil.setTotalRecord(Integer.valueOf(page.getTotal() + ""));
			return columnsList;
		}
		return this.itemDao.findCondList(condMap);
	}
	
	/*栏目项目模块结束*/
	
	/*答案模块开始*/
	/**
	 * 查询一条答案
	 */
	@Override
	public AAnswer findOneAnswerService(Map<String, Object> condMap) {
		return answerDao.findOne(condMap);
	}
	/**
	 * 保存一条答案
	 */
	@Override
	public JSONObject saveOneAnswerService(AAnswer answer) {
		int result = this.answerDao.saveOne(answer);
		return JsonUtil.JsonHandler(result,answer.getId());
	}
	/**
	 * 更新一个答案
	 */
	@Override
	public JSONObject updateOneAnswerService(AAnswer answer) {
		int result = this.answerDao.updateOne(answer);
		return JsonUtil.JsonHandler(result,answer.getId());
	}
	/**
	 * 删除一个答案
	 */
	@Override
	public JSONObject deleteOneAnswerService(AAnswer answer) {
		int result = this.answerDao.deleteOne(answer);
		return JsonUtil.JsonHandler(result, answer.getId());
	}
	/**
	 * 查询所有答案信息
	 */
	@Override
	public List<AAnswer> findCondListAnswerService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap) {
		if (pageInfoUtil != null)
		{
			/* 分页 */
			/* 查询总记录数 */
			Page<AAnswer> page = PageHelper.startPage(pageInfoUtil.getCurrentPage(), pageInfoUtil.getPageSize());
			/* 查询数据 */
			List<AAnswer> columnsList = this.answerDao.findCondList(condMap);
			/* 设置总记录数 ,一定要在查询结果之后 */
			pageInfoUtil.setTotalRecord(Integer.valueOf(page.getTotal() + ""));
			return columnsList;
		}
		return this.answerDao.findCondList(condMap);
	}
	
	/*答案模块结束*/
	
	/*问题模块开始*/
	/**
	 * 查询一条问题
	 */
	@Override
	public AQuestion findOneQuestionService(Map<String, Object> condMap) {
		return questionDao.findOne(condMap);
	}
	/**
	 * 保存一条问题
	 */
	@Override
	public JSONObject saveOneQuestionService(AQuestion question) {
		int result = this.questionDao.saveOne(question);
		return JsonUtil.JsonHandler(result,question.getId());
	}
	/**
	 * 更新一个问题
	 */
	@Override
	public JSONObject updateOneQuestionService(AQuestion question) {
		int result = this.questionDao.updateOne(question);
		return JsonUtil.JsonHandler(result,question.getId());
	}
	/**
	 * 删除一个问题
	 */
	@Override
	public JSONObject deleteOneQuestionService(AQuestion question) {
		int result = this.questionDao.deleteOne(question);
		return JsonUtil.JsonHandler(result, question.getId());
	}
	/**
	 * 查询所有问题信息
	 */
	@Override
	public List<AQuestion> findCondListQuestionService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap) {
		if (pageInfoUtil != null)
		{
			/* 分页 */
			/* 查询总记录数 */
			Page<AQuestion> page = PageHelper.startPage(pageInfoUtil.getCurrentPage(), pageInfoUtil.getPageSize());
			/* 查询数据 */
			List<AQuestion> columnsList = this.questionDao.findCondList(condMap);
			/* 设置总记录数 ,一定要在查询结果之后 */
			pageInfoUtil.setTotalRecord(Integer.valueOf(page.getTotal() + ""));
			return columnsList;
		}
		return this.questionDao.findCondList(condMap);
	}
	/**
	 * 查询每个栏目的item个数
	 */
	@Override
	public int findCountItemList(Map<String, Object> condMap) {
		return this.itemDao.findCount(condMap);
	}
	
	/*问题模块结束*/


}
